Today many enterprises now use cloud-based computing platforms that allow services and data to be accessed over the Internet (or via other networks). Infrastructure providers of these cloud-based computing platforms offer network-based processing systems that often support multiple enterprises (or tenants) using common computer hardware and data storage. This “cloud” computing model allows applications to be provided over a platform “as a service” supplied by the infrastructure provider. The infrastructure provider typically abstracts the underlying hardware and other resources used to deliver a customer-developed application so that the customer no longer needs to operate and support dedicated server hardware. The cloud computing model can often provide substantial cost savings to the customer over the life of the application because the customer no longer needs to provide dedicated network infrastructure, electrical and temperature controls, physical security and other logistics in support of dedicated server hardware.
Multi-tenant cloud-based architectures have been developed to improve collaboration, integration, and community-based cooperation between customer tenants without compromising data security. Generally speaking, multi-tenancy refers to a system where a single hardware and software platform simultaneously supports multiple organizations or tenants from a common data storage element (also referred to as a “multi-tenant database”). The multi-tenant design provides a number of advantages over conventional server virtualization systems. First, the multi-tenant platform operator can often make improvements to the platform based upon collective information from the entire tenant community. Additionally, because all users in the multi-tenant environment execute applications within a common processing space, it is relatively easy to grant or deny access to specific sets of data for any user within the multi-tenant platform, thereby improving collaboration and integration between applications and the data managed by the various applications. The multi-tenant architecture therefore allows convenient and cost effective sharing of similar application feature software between multiple sets of users.
A cloud-based computing environment can include a number of different data centers, and each data center can include a number of instances, where each instance can support many tenants (e.g., 10,000 tenants or more). As such, large numbers of tenants can be grouped together into and share an instance as tenants of that instance. Each tenant is its own organization (or org) that is identified by a unique identifier (ID) that represents that tenant's data within an instance.
A calendar application is software that provides users with an electronic version of a calendar that displays dates and times, and a host of other features including appointment calendaring, scheduling and reminders, availability sharing, integrated email, calendar publishing, an address book and/or contact list (e.g., a list of contacts with information to enable users to communicate with the contacts), time management software, etc. Various calendar applications are in use today, including Salesforce® Lightning Calendar, iCal™, Google™ Calendar, and Microsoft™ Office 365, Microsoft™ Outlook with Exchange Server to name a few. These applications present an interface that allows a user to create an event at a specified time. The user may track various events, including meetings that the user has been invited to. Most calendar applications also allow a user to send invite requests for events to other users. When an invitee receives the request, the invitee can choose to accept or decline the request. If the invitee accepts, a corresponding event is typically created in the invitee's calendar.
Many professionals (e.g., sales and marketing professionals, engineers, attorneys, etc.) typically manage their day using a calendar application. Some conventional calendar applications allow a user to specify a very limited set of statically-defined calendar items such as an appointment or meeting that are to appear on their calendar. This allows a user to view certain information about an appointment or meeting that appears on their calendar via a preview panel. For example, the preview panel can allow a user to view certain basic information about the appointment or meeting (i.e., the start and end time, the location, the organizer, and a reminder time).